考題日期:2017/03/28
題號:10038
星等:1
語言:C++
題目:
題意:
有n個整數的序列我們稱為jolly jumper,如果相鄰的2個數其差的絕對值恰好為1到n-1。
有一個 n 個整數的序列且相鄰兩個數的差值的絕對值恰好為 1 到 n-1 ,此序列我們稱為Jolly,判斷輸入之數字是否為Jolly。
程式:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        bool key =true;
        int num[n],d[n-1];
        for(int i = 0 ; i < n ; i++)
        {
            cin>>num[i];
        }
        for(int i = 0 ; i < n - 1 ; i++)
        {
            d[i] = abs(num[i+1] - num[i]);
        }
        sort(d,d+n-1);
        for(int i = 0 ; i < n - 1 ; i++)
        {
            if(d[i] != i + 1)
            {
                key = false;
                break;
            }
        }
        if(key)
            cout<<"Jolly"<<endl;
        else
            cout<<"Not jolly"<<endl;
    }
    return 0;
}
測資: